package com.lifang.imsoa.model.response;

import com.lifang.json.FasterJsonTool;

import lombok.Getter;
import lombok.Setter;

public enum ErrorEnum {
	SOA_ERROR_100000(100000, "参数错误"),
	SOA_ERROR_100002(100002, "上传图片错误，请稍后再试"),
	SOA_ERROR_100004(100004, "请勿重复提交"),
	
	IM_ERROR_400(400,"错误请求,服务器不理解请求的语法。"),
	IM_ERROR_401(401,"未授权,请求要求身份验证。 对于需要token的接口，服务器可能返回此响应。"),
	IM_ERROR_403(403,"禁止服务器拒绝请求。"),
	IM_ERROR_404(404,"未找到服务器找不到请求的接口。"),
	IM_ERROR_408(408,"请求超时服务器等候请求时发生超时。"),
	IM_ERROR_413(413,"请求体过大,请求体超过了5kb，拆成更小的请求体重试即可"),
	IM_ERROR_500(500,"服务器内部错误服务器遇到错误，无法完成请求。"),
	IM_ERROR_501(501,"尚未实施服务器不具备完成请求的功能。 例如，服务器无法识别请求方法时可能会返回此代码。"),
	IM_ERROR_502(502,"错误网关服务器作为网关或代理，从上游服务器收到无效响应。"),
	IM_ERROR_503(503,"服务不可用请求接口超过调用频率限制, 即 接口被限流."),
	IM_ERROR_504(504,"网关超时服务器作为网关或代理，但是没有及时从上游服务器收到请求。"),
	
	SOA_ERROR_200001(200001, "用户名含有非法字符"),
	SOA_ERROR_200002(200002, "密码不能为空"),
	SOA_ERROR_200003(200003, "发送消息失败"),
	SOA_ERROR_200004(200004, "用户ID不能为空"),
	SOA_ERROR_200005(200005, "appNameEnum不能为空"),
	SOA_ERROR_200006(200006, "暂时不支持这种消息"),
	SOA_ERROR_200007(200007, "暂时不支持此系统注册,请联系开发者"),
	SOA_ERROR_200008(200008, "注册时出现异常"),
	SOA_ERROR_200009(200009, "请指明用户所属系统"),
	SOA_ERROR_200010(200010, "调用异常,请联系imsoa开发者"),
	
	NULL(-1, ""),
	;
	
	@Setter @Getter
	private int status;
	
	@Setter @Getter
	private String message;

	private ErrorEnum(int status, String message) {
		this.status = status;
		this.message = message;
	}

	public static ErrorEnum getErrorEnumByStatus(int status){
		for(ErrorEnum errorEnum:ErrorEnum.values()){
			if(errorEnum.getStatus()==status)
				return errorEnum;
		}
		return null;
	}
	
	public static void main(String[] args) {
		System.out.println(FasterJsonTool.writeValueAsString(ErrorEnum.SOA_ERROR_200001));
	}
}
